package src.Aula06.Ex02;

public class Circulo extends Cor{

    private Ponto centro;
    private double raio;

    public Circulo(Ponto centro, double raio, String cor) {
        super(cor);
        this.centro = centro;
        this.raio = raio;
        
    }

    public Ponto getCentro() {return centro;}
    public double getRaio() {return raio;}

@Override

//toString
    public String toString() {
        return "Centro = " + centro + "; Raio = " + raio+ "; Cor = "+getCor();
    }

//equals
    public boolean equals(Circulo outroCirculo) {
        return centro == outroCirculo.getCentro() && raio == outroCirculo.getRaio() && getCor().equals(outroCirculo.getCor());

    }

// set

    public void setCentro(Ponto novoCentro) {
        this.centro = novoCentro;

    }

    public void setRaio(double novoRaio) {
        this.raio = novoRaio;
    }

// perimetro

    public double perimetro() {
        return Math.PI * 2 * raio;

    }
//area
    public double area() {
        return Math.PI * raio * raio;

    }

    public boolean intersetaCirculo(Circulo circulo) {                   
        // Fórmula
        double distance = Math.sqrt(Math.pow(circulo.getCentro().getX() - centro.getX(), 2)
                + (Math.pow(circulo.getCentro().getY() - centro.getY(), 2)));
        return distance <= (raio + circulo.getRaio());
    }
}


